add admin_view and order_list

FFIB 5 years ago
parent
commit
d5a8049441
3 changed files with 75 additions and 2 deletions
  1. 67 0
      api/admin_views.py
  2. 7 1
      api/urls.py
  3. 1 1
      pay/models.py

+ 67 - 0
api/admin_views.py

@@ -0,0 +1,67 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+import logging
4
+
5
+from django.conf import settings
6
+from django.db import transaction
7
+from django_logit import logit
8
+from django_response import response
9
+from django.db.models import Q
10
+
11
+from account.models import UserInfo
12
+from goods.models import GoodsInfo, PackInfo
13
+from kol.models import KOLInfo
14
+from pay.models import OrderInfo
15
+
16
+logger = logging.getLogger('logit')
17
+
18
+@logit(res=True)
19
+@transaction.atomic
20
+def order_list(request):
21
+  kol_id = request.POST.get('kol_id', '')
22
+  pack_id = request.POST.get('pack_id', '')
23
+  ftime = request.POST.get('ftime', '')
24
+  ttime = request.POST.get('ttime', '')
25
+  query = request.POST.get('query', '')
26
+
27
+  page = request.POST.get('page', 0)
28
+  num = request.POST.get('num', 20)
29
+
30
+  infos = OrderInfo.objects.filter(Q(phone__contains=query) | Q(name__contains=query), kol_id__contains=kol_id, pack_id__contains=pack_id, pay_status=1)
31
+
32
+  res = []
33
+
34
+  for info in infos:
35
+    goods_info = []
36
+    try:
37
+      pack = PackInfo.objects.get(pack_id=info.pack_id)
38
+      kol = KOLInfo.objects.get(kol_id=info.kol_id)
39
+
40
+      for g in info.goods_info:
41
+        try:
42
+          goods = GoodsInfo.objects.get(good_id=g.get('good_id', ''))
43
+          goods_info.append({
44
+            'title': goods.title,
45
+            'num': g.get('num', 0)
46
+          })
47
+        except:
48
+          continue
49
+      
50
+      res.append({
51
+        'name': info.name,
52
+        'phone': info.phone,
53
+        'address': info.address,
54
+        'paid_at': info.paid_at,
55
+        'order_id': info.order_id,
56
+        'transaction_id': info.transaction_id,
57
+        'tracking_number': info.tracking_number,
58
+        'goods_info': goods_info,
59
+        'kol_name': kol.name,
60
+        'pack_title': pack.title
61
+      })
62
+    except:
63
+      continue
64
+  
65
+  return response(200, 'Order List Success', u'获取订单列表成功', {
66
+        'orders': res
67
+    })

+ 7 - 1
api/urls.py

@@ -2,7 +2,7 @@
2 2
 
3 3
 from django.conf.urls import url
4 4
 
5
-from api import mini_views, oauth_views, pack_views
5
+from api import mini_views, oauth_views, pack_views, admin_views
6 6
 from pay import views as pay_views
7 7
 
8 8
 
@@ -21,6 +21,12 @@ urlpatterns += [
21 21
 ]
22 22
 
23 23
 urlpatterns += [
24
+    url(r'^admin/order/list$', admin_views.order_list, name='order_list'),   # 订单列表
25
+]
26
+
27
+
28
+
29
+urlpatterns += [
24 30
     url(r'^3rd/or$', oauth_views.oauth_redirect, name='3rd_or'),
25 31
     url(r'^3rd/oauth_redirect$', oauth_views.oauth_redirect, name='3rd_oauth_redirect'),
26 32
 ]

+ 1 - 1
pay/models.py

@@ -71,4 +71,4 @@ class OrderInfo(BaseModelMixin):
71 71
         verbose_name_plural = _('订单信息')
72 72
 
73 73
     def __unicode__(self):
74
-        return self.pk
74
+        return self.pk